package com.zkl.user.model;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.util.Date;
import com.zkl.common.web.app.base.BaseModel;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serializable;

/**
 * <p>
 * 用户账户变动记录表
 * </p>
 *
 * @author gongxz
 * @since 2020-01-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="UserAccountChangeRecord对象", description="用户账户变动记录表")
public class UserAccountChangeRecord extends BaseModel<UserAccountChangeRecord> {


	@TableId(value = "id", type = IdType.UUID)
    private String id;

    @ApiModelProperty(value = "用户推荐码")
    private String userRecommendCode;

    @ApiModelProperty(value = "变动类型：1.商品CPS奖励;2.权益分红;3.权益兑换;4.提现;5:购物支出;6;KOL权益结算;  7.贡献值兑换，8.KOL奖励，9.红包收入，10，红包退款")
    private String changeType;

    @ApiModelProperty(value = "变动金额")
    private BigDecimal changeMoney;

    @ApiModelProperty(value = "变动后余额")
    private BigDecimal changeAfterMoney;

    @ApiModelProperty(value = "变动时间")
    private Date changeDate;

    @ApiModelProperty(value = "0-在途；1-已到账；2-支出")
    private String status;

    @ApiModelProperty(value = "非商品订单产生的变动需要备注")
    private String remark;

    @ApiModelProperty(value = "品牌商代码")
    private String corpCode;

    @ApiModelProperty(value = "品牌商名称")
    private String corpName;

    @ApiModelProperty(value = "更新时间")
    private Date updateDate;

    @ApiModelProperty(value = "更新人")
    private String updateBy;

    @ApiModelProperty(value = "订单产生的变动需要记录(1,5,8)")
    private String orderCode;

    @ApiModelProperty(value = "谁带来的收益，邀请人下单(1)")
    private String orderRecommendCode;

    @ApiModelProperty(value = "3.权益兑换时不为空，记录权益扣减的记录id")
    private String userEquityChangeRecordId;

    @ApiModelProperty(value = "4.提现时不能为空，记录品牌商转账到用户记录id")
    private String payTransfersLogId;

    @ApiModelProperty(value = "领取红包、红包退款记录红包id(9,10)")
    private String redPacketInfoId;


    public static final String ID = "id";

    public static final String USER_RECOMMEND_CODE = "user_recommend_code";

    public static final String CHANGE_TYPE = "change_type";

    public static final String CHANGE_MONEY = "change_money";

    public static final String CHANGE_AFTER_MONEY = "change_after_money";

    public static final String CHANGE_DATE = "change_date";

    public static final String STATUS = "status";

    public static final String REMARK = "remark";

    public static final String CORP_CODE = "corp_code";

    public static final String CORP_NAME = "corp_name";

    public static final String UPDATE_DATE = "update_date";

    public static final String UPDATE_BY = "update_by";

    public static final String ORDER_CODE = "order_code";

    public static final String ORDER_RECOMMEND_CODE = "order_recommend_code";

    public static final String USER_EQUITY_CHANGE_RECORD_ID = "user_equity_change_record_id";

    public static final String PAY_TRANSFERS_LOG_ID = "pay_transfers_log_id";

    public static final String RED_PACKET_INFO_ID = "red_packet_info_id";

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

}
